feat: add ps restart command with --force flag#160
Conversation
Implements #39. Adds `apppack ps restart <process_type>` with two modes: - Graceful (default): calls ECS UpdateService with ForceNewDeployment=true to trigger a rolling restart without downtime. - Forced (--force): calls DescribeTasks to find running tasks matching the apppack:processType tag, then stops each via StopTask so ECS relaunches them immediately. The required IAM permissions (ecs:UpdateService, ecs:StopTask, ecs:ListTasks, ecs:DescribeTasks scoped by ecs:cluster) were already added to WebOperatorRole in apppack-backend commit 45261d2.
Tested on sandboxDeployed
Note: ran via Follow-up addedAdded an |
Summary
apppack ps restart <process_type>CLI command (closes Add ps restart command #39)UpdateServicewithForceNewDeployment: truefor a zero-downtime rolling restart--force): stops all running containers matching theapppack:processTypetag viaStopTask; ECS relaunches them automaticallyps scale)Implementation
app/app.go: newRestartProcess(processType string, force bool) errormethod + unexportedgetTagFromTaskhelpercmd/ps.go: newpsRestartCmdregistered underpsCmd, with--forcebool flagNotes
The required IAM permissions (ecs:UpdateService, ecs:StopTask, ecs:ListTasks, ecs:DescribeTasks scoped by ecs:cluster) were already added to WebOperatorRole in apppack-backend commit 45261d2 - this is CLI-only work.
Closes #39